import {
  in_theaters,
  coming_soon,
  selectPreview
} from '../../utils/movie/index'

var QQMapWX = require('../../utils/qqmap-wx-jssdk/qqmap-wx-jssdk');
var qqmapsdk;

Page({
  data: {
    city: '', // 定位
    current: 1, // 正在热映 即将上映 切换
    hotStart: 1, // 正在热映 - 当前页数
    hotList: [], // 正在热映 - 列表
    hotScriptwriter: [], // 正在热映 - 主演
    descCurrent: 0, // 今日最热 一周最热
    bestCurrent: 2, // 口碑最佳
    saleCurrent: 1, // 口碑最佳
    previewStart: 1, // 精选预告 - 当前页数
    previewList: [], // 精选预告 - 列表
    previewLongtime: [], // 精选预告 - 时长
    soonStart: 1, // 即将上映 - 当前页数
    soonList: [], // 即将上映 - 列表
    soonMonth: [], // 即将上映 - 月
    soonDay: [], // 即将上映 - 日
    soonScriptwriter: [], // 即将上映 - 主演
    soonTotalPage: '', // 即将上映 - 总页数
    soonCurrent: 0, // 即将上映 - 总页数
  },
  onLoad: function (options) {
    var _this = this;
    // 实例化API核心类
    qqmapsdk = new QQMapWX({
      key: 'PZXBZ-2DN63-KY73I-3O3RU-ADX4O-ZRF7R'
    });
    // 获取位置
    wx.getLocation({
      success(res) {
        // 调用接口 - 逆地址解析
        qqmapsdk.reverseGeocoder({
          location: {
            latitude: res.latitude,
            longitude: res.longitude
          },
          coord_type: 1,
          success(res) {
            _this.setData({
              city: res.result.address_component.city
            })
          }
        })
      }
    });
    this.getTabBar().setData({
      current: 1
    });
    this.hotInit();
    this.soonInit();
    this.previewInit();
  },
  // 正在热映 即将上映 切换
  navEvents(e) {
    var num = e.currentTarget.dataset.num
    this.setData({
      current: num
    })
  },
  // 热映影片
  hotInit() {
    var _this = this;
    // 正在热映
    in_theaters({
      start: _this.data.hotStart,
      limit: 5
    }).then(res => {
      // console.log(res.data.data.list)
      // 提取主演
      var items = res.data.data.list.map(ele => ele.scriptwriter)
      // 提取2个主演
      var item = items.map(ele => ele.slice(0, 2))
      this.setData({
        hotList: res.data.data.list,
        hotScriptwriter: item
      })
    })
  },
  // 即将上映
  soonInit() {
    var _this = this;
    // 即将上映
    coming_soon({
        start: _this.data.soonStart,
        limit: 10
      })
      .then(res => {
        // 提取show_date
        var items = res.data.data.list.map(ele => ele.show_date);
        // 拆分提取 月+日
        var item = items.map(ele => {
          if (ele.length == 2) {
            return ele[1].slice(5, 10).split("-")
          } else {
            return ele[0].slice(5, 10).split("-")
          }
        });
        // 提取 月 日 转为 数字数组
        var Month = (item.map(ele => ele[0])).map(Number);
        var Day = (item.map(ele => ele[1])).map(Number);
        // 提取主演
        var arrs = res.data.data.list.map(ele => ele.scriptwriter)
        // 提取2个主演
        var arr = arrs.map(ele => {
          if (ele == null) {
            return ele
          } else {
            return ele.slice(0, 2)
          }
        });
        this.setData({
          soonList: res.data.data.list,
          soonMonth: Month,
          soonDay: Day,
          soonScriptwriter: arr,
          soonTotalPage: res.data.data.totalPage
        })
      })
  },
  // 精选预告
  previewInit() {
    var _this = this;
    // 精选预告
    selectPreview({
      start: _this.data.previewStart,
      limit: 2
    }).then(res => {
      // 提取时长
      var items = res.data.data.map(ele => ele.movie.longtime);
      // 提取数字
      var item = items.map(ele => ele.match(/\d+/g));
      // 分钟 转 小时:分钟
      var arr = item.map(ele => {
        // 数字转为字符串 判断长度是否为1
        if ((ele % 60).toString().length == 1) {
          return '0' + Math.floor(ele / 60) + ":" + '0' + (ele % 60)
        } else {
          return '0' + Math.floor(ele / 60) + ":" + (ele % 60)
        }
      });
      this.setData({
        previewList: res.data.data,
        previewLongtime: arr
      })
    })
  },
  // 即将上映 - 日期切换
  dateEvents(e) {
    var val = e.currentTarget.dataset.index;
    this.setData({
      soonCurrent: val,
      soonStart: val + 1
    });
    this.soonInit()
  }
})